#include<iostream>
#include<type_traits>
using namespace std;

template<typename T>
struct ValueOfPointer
{
	typename conditional<(sizeof(T) > sizeof(T*)), T*, T>::type V;
};

struct A
{
	int a;
	int b;
};
struct B
{
	int a;
};

int main(void)
{	
	cout<< sizeof(ValueOfPointer<A>::V) <<endl << sizeof(ValueOfPointer<B>::V) <<endl;
	
	return 0;
}
